<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">

    <ui:composition template="/template.xhtml">
        <ui:define name="title">
            <h:outputText value="Registrar Entidad"></h:outputText>
        </ui:define>
        <ui:define name="body">
            <h:panelGroup id="messagePanel" layout="block">
                <h:messages errorStyle="color: red" infoStyle="color: green" layout="table"/>
            </h:panelGroup>
            <h:form>

                <rich:tabPanel switchType="client">
                    <rich:tab header="Información General">
                        <h:panelGrid columns="2">
                            <h:outputLabel value="Nombre" for="nombre" />
                            <h:inputTextarea id="nombre" value="#{entidadController.selected.nombre}"  required="true" requiredMessage="Se requiere el nombre" rows="2" cols="30"/>
                            <h:outputLabel value="Sigla" for="sigla" />
                            <h:inputText id="sigla" value="#{entidadController.selected.sigla}"  />
                            <h:outputLabel value="Misión" for="mision" />
                            <h:inputTextarea id="mision" value="#{entidadController.selected.mision}"  />
                            <h:outputLabel value="Teléfono" for="telefono" />
                            <h:inputText id="telefono" value="#{entidadController.selected.telefono}"  />
                            <h:outputLabel value="Fax" for="fax" />
                            <h:inputText id="fax" value="#{entidadController.selected.fax}"  />
                            <h:outputLabel value="Página Web" for="paginaWeb" />
                            <h:inputText id="paginaWeb" value="#{entidadController.selected.paginaWeb}"  />
                            <h:outputLabel value="País" for="pais" />
                            <rich:select id="pais" value="#{entidadController.selected.pais}" valueChangeListener="#{paisController.cambioPaisListener}"  >
                                <f:selectItems value="#{paisController.itemsAvailableSelectOne}"/>
                                <a4j:ajax event="selectitem" render="departamento" execute="@this" />
                            </rich:select>
                            <h:outputLabel value="Departamento" for="departamento" />
                            <rich:select id="departamento" value="#{entidadController.selected.departamento}"  valueChangeListener="#{departamentoController.cambioPaisListener}">
                                <f:selectItems value="#{paisController.itemsAvailableSelectOneByPais}"/>
                                <a4j:ajax event="selectitem" render="municipio" execute="@this" />
                            </rich:select>
                            <h:outputLabel value="Municipio" for="municipio" />
                            <rich:select id="municipio" value="#{entidadController.selected.municipio}"  >
                                <f:selectItems value="#{departamentoController.itemsAvailableSelectOneByDepto}"/>
                            </rich:select>
                            <h:outputLabel value="Dirección" for="direccion" />
                            <h:inputTextarea id="direccion" value="#{entidadController.selected.direccion}"  />
                            <h:outputLabel value="Tipo de Entidad" for="tipoentidad" />
                            <rich:select id="tipoentidad" value="#{entidadController.selected.tipoentidad}"  >
                                <f:selectItems value="#{tipoentidadController.itemsAvailableSelectOne}"/>
                            </rich:select>

                        </h:panelGrid>
                    </rich:tab>
                    <rich:tab header="Servicios Web">
                        <h:panelGrid  columns="1">
                            <a4j:commandButton value="Adicionar Servicio Web" onclick="#{rich:component('popupServicio')}.show()" render="textServicios" execute="@this"/> 
                            <rich:panel id="servicios">
                                <rich:dataTable value="#{entidadController.selected.serviciowebList}" var="servicio" iterationStatusVar="it" >
                                    <f:facet name="header">Servicios Web</f:facet>
                                    <rich:column>
                                        <f:facet name="header">#</f:facet>
                                        #{it.index+1}
                                    </rich:column>
                                    <rich:column> 
                                        <f:facet name="header">Nombre del Servicio</f:facet> 
                                        #{servicio.nombre}
                                    </rich:column>
                                    <rich:column> 
                                        <f:facet name="header">Descripción</f:facet> 
                                        #{servicio.descripcion}
                                    </rich:column>
                                    <rich:column> 
                                        <f:facet name="header">URL</f:facet> 
                                        #{servicio.url}
                                    </rich:column>
                                    <rich:column>
                                        <a4j:commandLink value="Eliminar" execute="@this" action="#{entidadController.eliminarServicio(it.index)}"
                                                         render="servicios" >
                                        </a4j:commandLink>
                                    </rich:column>
                                </rich:dataTable>
                            </rich:panel>
                        </h:panelGrid>
                    </rich:tab>
                    <rich:tab header="SIG">
                        <h:panelGrid  columns="1">
                            <a4j:commandButton value="Adicionar SIG" onclick="#{rich:component('popupSIG')}.show()" render="textSIG" execute="@this"/> 
                            <rich:panel id="SIG">
                                <rich:dataTable value="#{entidadController.selected.sigList}" var="sig" iterationStatusVar="it" >
                                    <f:facet name="header">Sistemas de información Geográfica</f:facet>
                                    <rich:column>
                                        <f:facet name="header">#</f:facet>
                                        #{it.index+1}
                                    </rich:column>
                                    <rich:column> 
                                        <f:facet name="header">Nombre del SIG</f:facet> 
                                        #{sig.nombre}
                                    </rich:column>
                                    <rich:column> 
                                        <f:facet name="header">Descripción</f:facet> 
                                        #{sig.descripcion}
                                    </rich:column>
                                    <rich:column> 
                                        <f:facet name="header">URL de Consulta</f:facet> 
                                        #{sig.url}
                                    </rich:column>
                                    <rich:column>
                                        <a4j:commandLink value="Eliminar" execute="@this" action="#{entidadController.eliminarSIG(it.index)}"
                                                         render="SIG" >
                                        </a4j:commandLink>
                                    </rich:column>
                                </rich:dataTable>
                            </rich:panel>
                        </h:panelGrid>
                    </rich:tab>
                    <rich:tab header="Tecnologías">
                        <h:panelGrid id="tecnologias" columns="1">
                            <br/>
                            <rich:panel>
                                <rich:dataTable  value="#{tipotecnologiaController.lista}" var="tipoTecnologia">
                                    <rich:column colspan="6"><b>#{tipoTecnologia.tipo}</b></rich:column>
                                    <rich:collapsibleSubTable value="#{entidadController.solucionesMap[tipoTecnologia.idTipoTecnologia]}" var="solucion" iterationStatusVar="it">
                                        <rich:column>
                                            <f:facet name="header">#</f:facet>
                                            #{it.index+1}
                                        </rich:column>
                                        <rich:column>
                                            <f:facet name="header">Solución Tecnológica</f:facet>
                                            <h:outputText value="#{solucion.tecnologia.tecnologia}"/>
                                        </rich:column>
                                        <rich:column>
                                            <f:facet name="header">Descripción</f:facet>
                                            <h:outputText value="#{solucion.descripcion}"/>
                                        </rich:column>
                                        <rich:column>
                                            <a4j:commandLink value="Eliminar" execute="@this" action="#{entidadController.eliminarSolucion(solucion)}"
                                                             render="tecnologias" >
                                            </a4j:commandLink>
                                        </rich:column>
                                    </rich:collapsibleSubTable>
                                </rich:dataTable>
                                <br/>
                                <a4j:commandButton value="Adicionar Solución Tecnológica" onclick="#{rich:component('popupSolucion')}.show()" render="infoTecnologias" execute="@this"/> 
                            </rich:panel>
                        </h:panelGrid>
                    </rich:tab>

                </rich:tabPanel>

                <br />
                <h:commandLink action="#{entidadController.create}" value="Guardar" />
            </h:form>
            <rich:popupPanel id="popupServicio" modal="true" resizeable="false" autosized="false" 
                             onmaskclick="#{rich:component('popupServicio')}.hide()" height="250" width="320">
                <f:facet name="header">
                    <h:outputText value="Adición de Servicio Web" />
                </f:facet>
                <f:facet name="controls">
                    <h:outputLink value="#"
                                  onclick="#{rich:component('popupServicio')}.hide(); return false;">
                        X
                    </h:outputLink>
                </f:facet>
                <h:form>
                    <rich:panel id="textServicios">
                        <h:panelGrid  columns="2" >
                            <h:outputText value="Nombre del Servicio"/>
                            <h:inputTextarea  value="#{serviciowebController.selected.nombre}" cols="30" rows="2"/>
                            <h:outputText value="Descripción"/>
                            <h:inputTextarea  value="#{serviciowebController.selected.descripcion}" cols="30" rows="2"/>
                            <h:outputText value="URL"/>
                            <h:inputTextarea  value="#{serviciowebController.selected.url}" cols="30" rows="2"/>
                            <a4j:commandButton  value="Adicionar" action="#{serviciowebController.adicionarServicioWeb(entidadController.selected)}" 
                                                render="servicios" oncomplete="if (#{facesContext.maximumSeverity==null}) 
                                                #{rich:component('popupServicio')}.hide();"/>

                        </h:panelGrid>
                    </rich:panel>
                </h:form>

            </rich:popupPanel>
            <rich:popupPanel id="popupSIG" modal="true" resizeable="false" autosized="false" 
                             onmaskclick="#{rich:component('popupSIG')}.hide()" height="260" width="300">
                <f:facet name="header">
                    <h:outputText value="Sistema de Información Geográfica" />
                </f:facet>
                <f:facet name="controls">
                    <h:outputLink value="#"
                                  onclick="#{rich:component('popupSIG')}.hide(); return false;">
                        X
                    </h:outputLink>
                </f:facet>
                <h:form>
                    <rich:panel id="textSIG" >
                        <h:panelGrid  columns="2">
                            <h:outputText value="Nombre del SIG"/>
                            <h:inputTextarea  value="#{sigController.selected.nombre}" cols="30" rows="2"/>
                            <h:outputText value="Descripción"/>
                            <h:inputTextarea  value="#{sigController.selected.descripcion}" cols="30" rows="2"/>
                            <h:outputText value="URL"/>
                            <h:inputTextarea  value="#{sigController.selected.url}" cols="30" rows="2"/>
                        </h:panelGrid>
                        <h:panelGrid columns="1" >
                            <a4j:commandButton  value="Adicionar" action="#{sigController.adicionarSIG(entidadController.selected)}" 
                                                render="SIG" oncomplete="if (#{facesContext.maximumSeverity==null}) 
                                                #{rich:component('popupSIG')}.hide();"/>
                        </h:panelGrid>
                    </rich:panel>
                </h:form>
            </rich:popupPanel>
            <rich:popupPanel id="popupSolucion" modal="true" resizeable="false" autosized="false" 
                             onmaskclick="#{rich:component('popupSolucion')}.hide()" height="200" width="300">
                <f:facet name="header">
                    <h:outputText value="Tecnologías" />
                </f:facet>
                <f:facet name="controls">
                    <h:outputLink value="#"
                                  onclick="#{rich:component('popupSolucion')}.hide(); return false;">
                        X
                    </h:outputLink>
                </f:facet>
                <h:form>
                    <h:panelGrid id="infoTecnologias" columns="2">
                        <h:outputLabel value="Tipo de Tecnología" />
                        <rich:select value="#{soluciongeoController.selected.tipotecnologia}" valueChangeListener="#{tipotecnologiaController.cambioTipoListener}"  >
                            <f:selectItems value="#{tipotecnologiaController.itemsAvailableSelectOne}"/>
                            <a4j:ajax event="selectitem" render="tecnologia" execute="@this" />
                        </rich:select>
                        <h:outputLabel value="Tecnología" for="tecnologia" />
                        <rich:select id="tecnologia" value="#{soluciongeoController.selected.tecnologia}"  >
                            <f:selectItems value="#{tipotecnologiaController.itemsAvailableSelectOneByTipo}"/>
                        </rich:select>
                        <h:outputLabel value="Descripción"  />
                        <h:inputTextarea  value="#{soluciongeoController.selected.descripcion}" />

                    </h:panelGrid>
                    <h:panelGrid columns="1" >
                        <a4j:commandButton  value="Adicionar" action="#{soluciongeoController.adicionarSolucion(entidadController.selected)}" 
                                            render="tecnologias" oncomplete="if (#{facesContext.maximumSeverity==null}) 
                                            #{rich:component('popupSolucion')}.hide();"/>

                    </h:panelGrid>
                </h:form>
            </rich:popupPanel>
        </ui:define>
    </ui:composition>

</html>
